package com.meshnetics.gb.util.formatters;

/**
 * Commonly useful realisations of number formatters. They format number
 * as pair of decimal and hex numbers <p/>(examples: u-byte: 0 (0x00), 255
 * (0xFF); byte: -1 (0xFF); short: 0 (0x00-00), 256 (0x01-00), -1 (0xFF-FF);
 * int: 2700317882 (0xA0-F3-94-BA)) <p/> They throw IllegalArgumentException
 * if source value is out of appropriate range (see
 {@link com.meshnetics.gb.util.checkers.RangeCheck} for details)
 *
 * @author Yury Aserchev (yaserchev@meshnetics.com)
 *         Date: 20.06.2008 15:31:45
 */
public final class NumberFormatters {
    /** Byte formatter. Examples: 0 (0x00); 127 (0x7F); -128 (0x80); -1 (0xFF) */
    public static final NumberFormatter BYTE = new NumberFormatterByte();
    /** U-Byte formatter. Examples: 0 (0x00); 255 (0xFF) */
    public static final NumberFormatter UBYTE = new NumberFormatterUByte();
    /**U-Int formatter. **/
    public static final NumberFormatter UINT = new NumberFormatterUInt();
    /** Short formatter. Examples: 0 (0x00-00); 32767 (0x7F-FF); -32768 (0x80-00) */
    public static final NumberFormatter SHORT = new NumberFormatterShort();
    /** U-Short formatter. Examples: 0 (0x00-00); 65535 (0xFF-FF) */
    public static final NumberFormatter USHORT = new NumberFormatterUShort();
    /** Int formatter. Examples: 0 (0x00-00-00-00); -1 (0xFF-FF-FF-FF) */
    public static final NumberFormatter INT = new NumberFormatterInt();
    /** Long formatter. Examples: 0 (0x00-00-00-00-00-00-00-00); -1 (0xFF-FF-FF-FF-FF-FF-FF-FF) */
    public static final NumberFormatter LONG = new NumberFormatterLong();

    public static final NumberFormatter ULONG = new NumberFormatterULong();
    /** Private constructor. No class instances at all */
    private NumberFormatters() {}
}
